Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2019
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системне програмне забезпечення

Частина тексту файла

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ / Звіт до лабораторної роботи № 4 з дисципліни: “Системне програмне забезпечення” Мета: створити програму, яка перевіряє Flash-накопичувачі на наявність битих секторів. Теоретичні відомості У процесі експлуатації магнітних носіїв неминуче виникають різні помилки - дефекти, які потрібно вчасно виявляти й усувати. Зустрічаються на дисках дефекти можна розділити на два типи – фізичні і логічні. Логічні дефекти - пошкодження файлової структури або компонентів системної області диска. Найбільш часто поширюваними дефектами є: втрачені кластери - такі кластери, які вважаються зайнятими деякими файлами або папками, але в дійсності такими не є (на ці файли є помилкові посилання із системної області); пересічні файли - файли, що використовують загальні кластери. Логічні дефекти призводять до забруднення дискового простору (саме це відбувається при утворенні загублених кластерів), до неможливості доступу до фрагментів файлової системи, до взаємовпливу пересічних файлів. Логічні дефекти можуть привести до знищення частини даних на диску. Фізичні дефекти пов'язані з механічними пошкодженнями, низькою якістю або старінням магнітної поверхні. Якщо носій пошкоджений фізично, то з нього неможливо зчитати інформацію або правильно записати нову. Одним з видів дефектів є наявність битих секторів. Практично всі диски мають биті розділи. Він може бути один або кілька, і в більшості випадків це не страшно. Але з часом їх стає все більше, і вони все сильніше ускладнюють оперування інформацією на носії. Такі ділянки можна виявити скануванням жорсткого диска на биті сектори спеціальними утилітами. Причин появи бед секторів може бути багато: удар диска або використання в неправильних умовах; переривання запису шляхом відключення живлення; перегріви і температурні скачки; природний знос головок і пише диска; неякісна продукція. Тут же можна обробити биті сектори на невідновлювані та відновлювані. До перших належать ті, що викликані ударом або перегрівом. Вони знищуються один раз і не підлягають відновленню, а інформація, як правило, безповоротно зникає. Другий тип бед секторів з'являється в результаті обриву процесу запису. Їх можна реанімувати шляхом звичайної перезапису диска. Код програми #ifndef UNICODE # define UNICODE #endif #ifndef _UNICODE # define _UNICODE #endif #define STRICT #pragma warning( disable : 4115 )// named type definition in parentheses #include <windows.h> #pragma warning( disable : 4201 )// nonstandard extension used : nameless struct/union) #include <winioctl.h> #include <crtdbg.h> #include <stdio.h> #pragma warning ( disable : 4127 ) // conditional expression is constant #pragma comment(linker, "/subsystem:console") #pragma comment(lib, "advapi32.lib" ) #pragma comment(lib, "kernel32.lib" ) #pragma intrinsic(memcpy, memset, memcmp, strlen) #ifndef ARRSIZE #define ARRSIZE(x) (sizeof((x))/sizeof((x)[0])) #endif #ifdef _DEBUG #define VERIFY(f) _ASSERT(f) #else #define VERIFY(f) ((void)(f)) #endif #define BYTES_PER_SECTOR 512 /////////////////////////////////////////////////////////// // GetSectorsPerDisk // // Returns the size of hard disk // 0 means error /////////////////////////////////////////////////////////// __inline UINT64 GetSectorsPerDisk( IN HANDLE hDisk ) { DWORD Tmp; PARTITION_INFORMATION PartInfo; if (!DeviceIoControl(hDisk, IOCTL_DISK_GET_PARTITION_INFO, NULL, 0, &PartInfo, sizeof(PartInfo), &Tmp, NULL)) { return 0; } return PartInfo.PartitionLength.QuadPart / BYTES_PER_SECTOR; } // // Simple fragment description // typedef struct { UINT64 Start; // Start sector of fragment unsigned long Size; // Length of fragment } t_Range; /////////////////////////////////////////////////////////// // CheckRange // // Checks given range of sectors // Returns FALSE if range contains bad blocks /////////////////////////////////////////////////////////// __inl...
Антиботан аватар за замовчуванням

23.05.2019 09:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини